Estoy tratando de cargar una sola publicación de blog en laravel, pero cada vez que hago clic en una sola publicación, aparece el error "Intento de leer la propiedad "título" en bool". Intenté buscar el error, pero no encontré una solución y no sé qué causa el error. Aquí está mi código
Archivo de hoja:
@foreach($AboutUs as $about_us) <div class="col-lg"> <img src="images/agenda.png" class="img-fluid shadow-lg" style=""> <p class="mt-3 text-success fw-bold fs-5 text-lg-start">{{$about_us->title}}</p> <p class="fs-6 text-lg-start"> {{$about_us->description}}</p> <p class="text-success fw-bold text-lg-start"><a href="/about.show/{{$about_us->id}}" class="text-success text-decoration-none">{{$about_us->button}}</a></p> <!--<img src="images/hr-2.png" class="img-fluid float-start my-2">--> </div> @endforeachControlador:
public function show($id) { $data = AboutUs::find($id); return view('about.show', ['AboutUs' => $data]) ->with(['AboutUs' => AboutUs::find($id)]); }Rutas:
Route::get('/about.show/{id}', 'App\Http\Controllers\WelcomeController@show')->name('about.show');¿Alguien puede ofrecer ayuda?
OK, es un poco complicado, para ser honesto.
La respuesta corta es que:
$data = AboutUs::find($id);está devolviendo un artículo, no una colección de artículos. No puede recorrer eso como lo está tratando de hacer, de ahí el error.
Sin embargo, por alguna razón, ¿estás cargando eso nuevamente cuando devuelves tu vista?
return view('about.show',['AboutUs'=>$data])->with(['AboutUs' => AboutUs::find($id),]);Entonces, para empezar, probablemente pueda simplificar eso: suponiendo que desee cargar una publicación, en su controlador puede:
public function show($id) { $post = AboutUs::find($id); return view('about.show')->with(compact('post'); } Pero luego, en su archivo blade, está tratando de recorrer su variable $AboutUs como si fuera una colección, pero no lo es: find($id) devuelve una sola instancia de modelo.
Entonces, naturalmente, Blade se está confundiendo un poco.